package com.xg.xmall.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xg.comm.pojo.DataGridResult;
import com.xg.comm.pojo.XmallResult;
import com.xg.comm.utils.IDUtils;
import com.xg.xmall.dao.TbItemMapper;
import com.xg.xmall.pojo.TbItem;
import com.xg.xmall.pojo.TbItemExample;
import com.xg.xmall.pojo.TbItemExample.Criteria;
import com.xg.xmall.service.ItemService;

@Service
public class ItemServiceImpl implements ItemService {
	@Autowired
	private TbItemMapper itemMapper;

	@Override
	public TbItem getItemById(long itemId) {
		// TbItem item=itemMapper.selectByPrimaryKey(itemId);
		// return item;
		TbItemExample example = new TbItemExample();
		// 查询条件
		Criteria criteria = example.createCriteria();
		criteria.andIdEqualTo(itemId);
		List<TbItem> list = itemMapper.selectByExample(example);
		if (list != null && list.size() > 0) {
			TbItem item = list.get(0);
			return item;
		}
		return null;
	}

	/**
	 * 查询列表
	 */
	@Override
	public DataGridResult getItemList(int page, int rows) {
		TbItemExample example = new TbItemExample();
		// 分页
		PageHelper.startPage(page, rows);

		List<TbItem> list = itemMapper.selectByExample(example);

		// 创建一个返回值对象
		DataGridResult result = new DataGridResult();
		result.setRows(list);
		// 记录总条数
		PageInfo<TbItem> pageInfo = new PageInfo<TbItem>(list);
		result.setTotal(pageInfo.getTotal());
		return result;
	}

	@Override
	public XmallResult createItem(TbItem item) {
		//生成商品id
		//可以使用redis的自增长key，在没有redis之前使用时间+随机数策略生成
		Long itemId = IDUtils.genItemId();
		//补全不完整的字段
		item.setId(itemId);
		item.setStatus((byte) 1);
		Date date = new Date();
		item.setCreated(date);
		item.setUpdated(date);
		//把数据插入到商品表
		itemMapper.insert(item);

		return XmallResult.ok();
	}
}
